<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	<script type="text/javascript">
		// 其他类型转数字类型
		// 1.parseInt() 转整数
		console.log("10")//10
		console.log(parseInt("10"))//10
		console.log(parseInt("10.99"))//10
		console.log(parseInt("10sadsadsa"))//NaN
		console.log(parseInt("sadadas10"))//10

		// 2.parseFloat() 转小数
		console.log(parseFloat("9"))
		console.log(parseFloat("9.99"))//9.99
		console.log(parseFloat("9.99sadsadasds"))//9.99
		console.log(parseFloat("vhvhghh9.99"))//NaN

		// 3.Number() 转数字
		/*
			字符串：
				-如果是纯数字，会转为对应数字
				-如果不是纯数字，会转为NaN
				-如果是空字符串或者空格，返回0
			布尔值：
				true --- 1 false --- 0
				null：0
				undefined：NaN

		*/
		console.log(Number("10"))//10
		console.log(Number("10sadadas"))//NaN
		console.log(Number("sadadas10"))//NaN
		console.log(Number(''))//0
		console.log(Number('    '))//0
		console.log(Number("true"))//1
		console.log(Number("false"))//0
		console.log(Number("null"))//0
		console.log(Number("undefined"))//NaN

		// 总结：转整数用parseInt，转小数用parseFloat
		// 如果转数字要求比较严格用Number

		// 其他类型转字符串
		// 1.变量.toString() 可以转进制 除了null和undefined会报错，其他都可以转
		let s1 = 100
		console.log(s1.toString())
		// 转二进制
		console.log(s1.toString(2))//1100100
		// 转八进制
		console.log(s1.toString(8))//144
		// 转十六进制
		console.log(s1.toString(16))//64

		console.log(true.toString())//转布尔true
		//console.log(null.toString())报错
		//console.log(undefined.toString())报错

		// 2.String() 所有的数据类型都能转字符串 不能转进制
		console.log(String(s1))//100
		console.log(String(null))//nnull
		console.log(String(undefined))//undefined
		console.log(String(false))//false

		// 其他类型转Boolean true/false
		// Boolean
		/*
			数字类型：0和NaN是false
			字符串：空字符串是false
			undefined和null： false

		*/
		console.log(Boolean(1)) //true
		console.log(Boolean(0)) //false
		console.log(Boolean('1')) //true
		console.log(Boolean(-1)) //true
		console.log(Boolean('0')) //true
		console.log(Boolean('')) //false
		console.log(Boolean(' ')) //true
		console.log(Boolean(null)) //false
		console.log(Boolean(undefined)) //false
		console.log(Boolean(NaN)) //false


	</script>
</body>
</html>